//向外暴露一个对象
export default {
  // 为当前模块开启命名空间
  namespaced: true,
  state:()=>({
    address:JSON.parse(uni.getStorageSync('address')||'{}'),
     // 登录成功之后的 token 字符串
    token: JSON.parse(uni.getStorageSync('token') || '123'),
    userInfo:JSON.parse(uni.getStorageSync('userInfo') || '{}'),
     // 重定向的 object 对象 { openType, from }
    redirectInfo: null
  }),
  mutations:{
    //更新收货地址
    updateAddress(state,address){
      state.address = address
      this.commit('m_user/saveToStorage')
    },
    //更新并保存用户信息
    updateUserInfo(state,userInfo){
      state.userInfo = userInfo
      this.commit('m_user/saveUserInfoToStorage')
    },
    //更新并保存token
    updateToken(state,token){
      state.token = token
     this.commit('m_user/saveUserInfoToStorage')
    },
    //更新重定向的信息对象
    updateRedirectInfo(state,info){
      state.redirectInfo = info
    },
    //将用户信息的数据持久存储到本地
    saveUserInfoToStorage(state){
      uni.setStorageSync('userInfo',JSON.stringify(state.userInfo))
    },
    //将购物车中的数据持久化存储到本地
    saveToStorage(state){
      //将cart 保存到state.address 里面
      uni.setStorageSync('address',JSON.stringify(state.address))
    },
  },
  getters:{
    //计算一个地址
    addstr(state){
      //如果没有市区的名字，那么直接返回空字符串
      if (!state.address.provinceName) return ''
      //否则需要拼接
      return state.address.provinceName+state.address.cityName+state.address.detailInfo
    }
  }
}